iT邦幫忙

2024 iThome 鐵人賽

DAY 3
0
Software Development

Event driven architecture的奧妙系列 第 3

Day 3 - 微服務的發展

  • 分享至 

  • xImage
  •  

上一篇我們講到單體式架構的缺點,今天會著重探討微服務的優點以及兩個架構間的區別。

讓我們開始吧!

微服務

昨天我們提到當系統或使用者需求的複雜度提升時,單體氏架構產生的缺點。為了解決這些問題,微服務(Microservices)的概念被提出來。

什麼是微服務?

微服務架構是軟體開發的一種設計模式,與單體式架構相比,微服務不是將所有的服務視為一個整體,透過把所有服務綁在一起的方式讓應用程式運行,它的目的將應用服務拆成各個小型而且獨立的服務。每個服務只專注在特定的業務邏輯或功能,這樣做的好處是每個服務可以獨立開發、部屬、測試以及維護。

聽起來有點抽象,為了幫助大家更進一步瞭解微服務,我們舉個例子:

假設我們要開發電商平台,這個平台會有以下功能:

  • 客服
  • 訂單處理
  • 支付系統
  • 產品管理

單體式架構

https://ithelp.ithome.com.tw/upload/images/20240917/20169096jPSlGmlMNe.jpg

單體式架構就像是單人公司,不論是客服、訂單處理、支付、產品管理都由一個人處理,但如果這個人生病或其他因素請假,整個公司的運作就會停擺。

微服務架構

https://ithelp.ithome.com.tw/upload/images/20240917/2016909625TAnUnRko.jpg

微服務則是把單人公司處理的項目,細拆成一個又一個的部門,每個部門只專心負責對應的任務即可,像是客服部門處理客服相關問題、產品部門負責產品的管理等。
部門間彼此互不干擾,可以獨立運作,當負責其中一個部門的人請假,不會影響到其他部門,其他部門的人仍然可以獨自完成其工作。

總結

相比於單體氏架構的一體成形,微服務架構將每個服務拆分成獨立的服務,每個服務有自己的資料庫、業務邏輯,服務如果要相互溝通會透過API的形式進行溝通。

微服務有以下幾個優點:

  • 低耦合性(decoupling): 每個服務是獨立運作,修改其中一個服務不會直接影響到其他服務的運作
  • 可擴展性: 根據使用者的需求擴展特定服務
  • 易於維護與測試: 由於微服務的低耦合性,開發人員只要針對特定服務進行測試與維護,不用擔心跟此服務其他服務間的相互依賴。

好了~~ 今天就到這邊!!
下一篇會開始細講微服務的兩種架構。


上一篇
Day 2 - 單體式架構的問題
下一篇
Day 4 - Request Driven Architecture 介紹
系列文
Event driven architecture的奧妙30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言